#include <Wire.h>
#include <Adafruit_INA219.h>

Adafruit_INA219 ina219;

// 电压阈值定义
const float VOLTAGE_MIN = 11.1;  // 最低工作电压
const float VOLTAGE_MAX = 12.6;  // 最高工作电压

void setup() {
  Serial.begin(115200);
  while (!Serial);  // 等待串口连接（仅用于调试）
  
  // 初始化INA219
  if (!ina219.begin()) {
    Serial.println("无法找到INA219芯片！");
    while (1) delay(10);  // 永久停止
  }
  Serial.println("INA219 初始化完成");
}

void loop() {
  float busVoltage = ina219.getBusVoltage_V();  // 获取总线电压
  
  Serial.print("当前电压: "); 
  Serial.print(busVoltage);
  Serial.println(" V");

  // 电压范围检查
  if (busVoltage >= VOLTAGE_MIN && busVoltage <= VOLTAGE_MAX) {
    Serial.println("电压正常 - 执行主程序");
    
    // 在此处插入你的主功能代码 //
    // 例如：控制继电器、读取传感器等 //
    
  } else {
    Serial.println("电压异常! 系统暂停运行");
    
    // 安全处理（可选）
    // 例如：关闭所有输出设备 //
    
    delay(2000);  // 等待后重新检测
    return;       // 跳过后续代码
  }
  
  // 正常执行间隔（根据需求调整）
  delay(1000);
}